package 算法.NiuKe.TB;

import 算法.NiuKe.TreeNode;

/**
 * @author:谢君臣
 * @Date:2021/5/49:25
 * @version:1.0
 * @function:
 */
public class NC7 {
    public boolean hasPathSum (TreeNode root, int sum) {
        dfs(root,sum,0);
        return flag;
    }
    public boolean flag = false; //用于返回最后的结果
    public void dfs(TreeNode root, int sum, int cnt){
        if(root == null || flag == true) return ; //如果节点为空或者flag已经为true直接返回
        cnt += root.val; //用于存储路径和
        if(root.left == root.right){ //已经到达了叶子节点
            if(sum == cnt){//进行判断当前路径和是否等于给定的预期值
                flag = true;
            }
        }else{
            dfs(root.left,sum,cnt);//递归左子树
            dfs(root.right,sum,cnt); //递归右子树
        }
    }
}
